﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Net.NetworkInformation;
using System.Reflection;

namespace Utilities.Net.Wlan
{
    public abstract class WlanInterface : NetworkInterface
    {
        // Other
        public abstract string SSID { get; }
        public abstract int RSSI { get; }
        public abstract int Channel { get; }
    }

    public class WlanClient
    {
        private WlanClient client;

        public virtual List<WlanInterface> Interfaces
        {
            get
            {
                return client.Interfaces;
            }
            set
            {
                client.Interfaces = value;
            }
        }

        public WlanClient()
        {
            Type type = GetType();
            if (type.BaseType != typeof(object))
                return;

            switch (Environment.OSVersion.Platform)
            {
                case PlatformID.Win32NT:
                case PlatformID.Win32Windows:
                    client = new Windows.Net.Wlan.WlanClient();
                    break;
                case PlatformID.Unix:
                    throw new NotImplementedException();
            }
        }
    }
}
